diff options
Diffstat (limited to 'src/app/(main)/teams/[teamId]/TeamWebsitesTable.tsx')
| -rw-r--r-- | src/app/(main)/teams/[teamId]/TeamWebsitesTable.tsx | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/app/(main)/teams/[teamId]/TeamWebsitesTable.tsx b/src/app/(main)/teams/[teamId]/TeamWebsitesTable.tsx new file mode 100644 index 0000000..10f5654 --- /dev/null +++ b/src/app/(main)/teams/[teamId]/TeamWebsitesTable.tsx @@ -0,0 +1,50 @@ +import { DataColumn, DataTable, Row } from '@umami/react-zen'; +import Link from 'next/link'; +import { TeamMemberEditButton } from '@/app/(main)/teams/[teamId]/TeamMemberEditButton'; +import { TeamMemberRemoveButton } from '@/app/(main)/teams/[teamId]/TeamMemberRemoveButton'; +import { useMessages } from '@/components/hooks'; +import { ROLES } from '@/lib/constants'; + +export function TeamWebsitesTable({ + teamId, + data = [], + allowEdit, +}: { + teamId: string; + data: any[]; + allowEdit: boolean; +}) { + const { formatMessage, labels } = useMessages(); + + return ( + <DataTable data={data}> + <DataColumn id="name" label={formatMessage(labels.name)}> + {(row: any) => <Link href={`/teams/${teamId}/websites/${row.id}`}>{row.name}</Link>} + </DataColumn> + <DataColumn id="domain" label={formatMessage(labels.domain)} /> + <DataColumn id="createdBy" label={formatMessage(labels.createdBy)}> + {(row: any) => row?.createUser?.username} + </DataColumn> + {allowEdit && ( + <DataColumn id="action" align="end"> + {(row: any) => { + if (row?.role === ROLES.teamOwner) { + return null; + } + + return ( + <Row alignItems="center"> + <TeamMemberEditButton teamId={teamId} userId={row?.user?.id} role={row?.role} /> + <TeamMemberRemoveButton + teamId={teamId} + userId={row?.user?.id} + userName={row?.user?.username} + /> + </Row> + ); + }} + </DataColumn> + )} + </DataTable> + ); +} |